{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import os\n",
    "import json\n",
    "import numpy as np\n",
    "\n",
    "import torch\n",
    "\n",
    "from dataset import data_transform\n",
    "from utils import DotDict, Logger, bias, denormalize_data, rel_error, rmse\n",
    "from sp_att_mech import AttentionCNN\n",
    "\n",
    "import matplotlib.pyplot as plt\n",
    "%matplotlib inline"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# DATA IMPORTATION AND VISUALIZATION"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.colorbar.Colorbar at 0x7fcaf8d22ed0>"
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "datadir = 'data'\n",
    "dataset = 'sp_data.csv'\n",
    "data = torch.Tensor(np.genfromtxt(os.path.join('..',datadir, dataset)))\n",
    "\n",
    "plt.figure('Traffic Dataset')\n",
    "plt.imshow(data.squeeze().numpy().T, aspect='auto', cmap='jet')\n",
    "plt.title('Traffic Dataset')\n",
    "plt.xlabel('Timestep')\n",
    "plt.ylabel('Sensor')\n",
    "plt.colorbar()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# TRAINING AND TEST ERROR METRICS\n",
    " - Additional parameters via --parameter_name value\n",
    " - For simplicity, 60%-20%-20% validation scheme (training-validation-test)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      " 36%|███▋      | 73/200 [01:15<02:01,  1.05it/s, lr=0.0001, train_mse=0.0145, train_rmse=0.121, val_mse=0.0142, val_rmse=0.119]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "\n",
      "================================================\n",
      " *  Test MSE:  96792.6171875 \n",
      " *  Test RMSE:  311.115118866795 \n",
      " *  Test Bias:  -35.57925796508789 \n",
      " *  Test Rel-Err (%):  28.562769293785095\n",
      "================================================\n",
      "\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "<Figure size 432x288 with 0 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    " run training.py"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# RESULTS\n",
    " - Example: mean prediction from 00:00 to 23:00\n",
    " - Learning curve\n",
    " - Error distribution: spatial and temporal"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "outputdir  = opt.outputdir\n",
    "with open(os.path.join(outputdir, 'logs.json'), 'r') as f:\n",
    "    logs = json.load(f)\n",
    "    \n",
    "with open(os.path.join(outputdir, 'config.json'), 'r') as f:\n",
    "    config = json.load(f)\n",
    "\n",
    "opt = DotDict(config)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<All keys matched successfully>"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "model = AttentionCNN(in_channels=opt.n_inp, out_channels=opt.n_out, \n",
    "                     dim_x=opt.dim_x, dim_y=opt.dim_y)\n",
    "model.to(device)\n",
    "model.load_state_dict(torch.load(os.path.join(outputdir, 'spatial_model.pth')))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [],
   "source": [
    "\n",
    "\n",
    "_, _, _, _, X_test, Y_test, min_value, max_value = data_transform(opt)\n",
    "\n",
    "test_dataset = []\n",
    "for i in range(len(X_test)):\n",
    "   test_dataset.append([X_test[i], Y_test[i]]) \n",
    "    \n",
    "test_loader = torch.utils.data.DataLoader(dataset = test_dataset,\n",
    "                                           batch_size = len(X_test),\n",
    "                                           shuffle = False)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [],
   "source": [
    "model.eval()\n",
    "with torch.no_grad():        \n",
    "    for x,y in test_loader:\n",
    "        if torch.cuda.is_available():\n",
    "            x = x.to(device)\n",
    "            y = y.to(device)\n",
    "        else:\n",
    "            x = x\n",
    "            y = y\n",
    "        y_pred, _ = model(x)\n",
    "        \n",
    "        y_pred_dnorm = denormalize_data(y_pred.view(-1, opt.n_inp, opt.n_points).cpu(), min_value, max_value)\n",
    "        y_dnorm = denormalize_data(y.view(-1, opt.n_inp, opt.n_points).cpu(), min_value, max_value)\n",
    "\n",
    "y_tstep = y_dnorm[16::24]\n",
    "y_pred_tstep = y_pred_dnorm[16::24]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Example"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Text(0.5, 1.0, 'Absolute error')"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 1190x340 with 6 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "real = y_tstep.mean(0)\n",
    "prediction = y_pred_tstep.mean(0)\n",
    "\n",
    "plt.figure('Example', figsize=(14, 4), dpi=85)\n",
    "\n",
    "plt.subplot(1, 3, 1)\n",
    "plt.imshow(real.T,  vmin = real.min(), vmax = real.max(), aspect='auto', cmap='jet')\n",
    "plt.xticks(np.arange(0, 24, 2))\n",
    "#plt.yticks(np.arange(0, 30, 1))\n",
    "plt.xlabel('Hour of the day')\n",
    "plt.colorbar()\n",
    "plt.title('Ground truth')\n",
    "\n",
    "plt.subplot(1, 3, 2)\n",
    "plt.imshow(prediction.T,  vmin = real.min(), vmax = real.max(), aspect='auto', cmap='jet')\n",
    "plt.xticks(np.arange(0, 24, 2))\n",
    "#plt.yticks(np.arange(0, 30, 1))\n",
    "plt.xlabel('Hour of the day')\n",
    "plt.colorbar()\n",
    "plt.title('Spatial module prediction')\n",
    "\n",
    "plt.subplot(1, 3, 3)\n",
    "plt.imshow(real.sub(prediction).abs().T, aspect='auto', cmap='gray_r')\n",
    "plt.xticks(np.arange(0, 24, 2))\n",
    "#plt.yticks(np.arange(0, 30, 1))\n",
    "plt.xlabel('Hour of the day')\n",
    "plt.colorbar()\n",
    "plt.title('Absolute error')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Learning curve"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.legend.Legend at 0x7fcafbc3de10>"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 840x280 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure('Error', figsize=(12, 4), dpi=70)\n",
    "plt.plot(np.sqrt(logs['train.mse']), label = 'Train')\n",
    "plt.plot(np.sqrt(logs['val.mse']), label = 'Validation')\n",
    "plt.legend()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Temporal RMSE distribution: hour"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Text(0.5, 0, 'Hour of the day')"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 1190x340 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure('RMSE dist hour', figsize=(14, 4), dpi=85)\n",
    "plt.bar(x = range(0,24),height = rmse(y_pred_tstep,y_tstep, dim=2))\n",
    "plt.ylabel('RMSE')\n",
    "plt.xlabel('Hour of the day')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Temporal RMSE distribution: timestep"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Text(0.5, 0, 'Timestep')"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 1190x340 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure('RMSE dist timestep', figsize=(14, 4), dpi=85)\n",
    "plt.bar(x = range(0,24),height = rmse(y_pred_dnorm, y_dnorm, dim=2))\n",
    "plt.ylabel('RMSE')\n",
    "plt.xlabel('Timestep')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Spatial RMSE distribution"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Text(0.5, 0, 'Sensor')"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 1190x340 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure('RMSE dist spatial', figsize=(14, 4), dpi=85)\n",
    "plt.bar(x = np.arange(0,30),height = rmse(y_pred_dnorm,y_dnorm, dim=1))\n",
    "plt.ylabel('RMSE')\n",
    "plt.xlabel('Sensor')"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.4"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
